package com.yic.module.device.dal.dataobject.device;

import com.yic.framework.common.annotation.FieldMeta;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yic.framework.mybatis.core.dataobject.BaseDO;

/**
 * 设备基本信息 DO
 *
 * @author 系统管理员
 */
@TableName("device")
@KeySequence("device_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DeviceDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 设备名称
     */
    @FieldMeta(name = "设备名称")
    private String name;
    /**
     * 设备编号
     */
    @FieldMeta(name = "设备编号")
    private String code;
    /**
     * 规格
     */
    @FieldMeta(name = "规格")
    private String spec;
    /**
     * 序列号
     */
    @FieldMeta(name = "序列号")
    private String sn;
    /**
     * MAC
     */
    @FieldMeta(name = "MAC")
    private String mac;
    /**
     * 用途说明
     */
    @FieldMeta(name = "用途说明")
    private String illustrate;
    /**
     * 备注
     */
    @FieldMeta(name = "备注")
    private String remark;
    /**
     * 设备分类
     */
    @FieldMeta(name = "设备分类")
    private Long categoryId;
    /**
     * 供应商
     */
    @FieldMeta(name = "供应商")
    private Long supplierId;
    /**
     * 品牌
     */
    @FieldMeta(name = "品牌")
    private Long brandId;
    /**
     * 单位
     */
    @FieldMeta(name = "单位")
    private Long unitId;
    /**
     * 使用部门
     */
    @FieldMeta(name = "使用部门")
    private Long deptId;
    /**
     * 工作中心
     */
    @FieldMeta(name = "工作中心")
    private Long centerId;
    /**
     * 工厂
     */
    @FieldMeta(name = "工厂")
    private Long factoryId;
    /**
     * 管理人员
     */
    @FieldMeta(name = "管理人员")
    private Long adminId;
    /**
     * 使用人员
     */
    @FieldMeta(name = "使用人员")
    private Long userId;
    /**
     * 使用位置
     */
    @FieldMeta(name = "使用位置")
    private String loacation;
    /**
     * 设备状态
     *
     * 枚举 {@link TODO device_status 对应的类}
     */
    @FieldMeta(name = "设备状态")
    private Integer status;
    /**
     * 使用状态
     *
     * 枚举 {@link TODO device_use_status 对应的类}
     */
    @FieldMeta(name = "使用状态")
    private Integer useStatus;
    /**
     * 采购日期
     */
    private LocalDateTime procureTime;
    /**
     * 图片
     */
    private String images;
    /**
     * 文件
     */
    private String files;

}
